#include <iostream>
using namespace std;

/*
	函数对象(函数符)概念的由来
	    一个类重载了圆括号，创建对象来调用圆括号重载，写法跟普通函数调用很类似
		给我们造成一种错觉，感觉类对象好像函数调用，“误以为”这个类对象是函数名字
		类对象的写法具备了跟函数调用类似的写法，这种类对象--》称之为函数符(函数对象)
	要求：定义一个类，重载圆括号
	      返回值类型 operator运算符号(形参)
		  {
			  
		  }
*/

class Test
{
public:
	bool operator()(int n)
	{
		cout<<"圆括号重载被调用，传递的参数是: "<<n<<endl;
	}
};

int main()
{
	//创建Test对象
	//Test t1;
	//写法1：人类的思维习惯
	//t1(666);
	//写法2：函数调用
	//t1.operator()(999);
	
	//创建Test对象
	Test fun;
	//写法1：人类的思维习惯
	fun(666); 
	//写法2：函数调用
	//fun.operator()(999);
	
}